import request from './request'

// 提交研究任务
export function submitTask(data) {
  return request({
    url: '/task/submit',
    method: 'post',
    data
  })
}

// 获取任务结果
export function getTaskOutcome(taskId) {
  return request({
    url: `/task/outcome`,
    method: 'get',
    params: { taskId }
  })
}

// 检查任务状态 - 用于轮询
export function checkTaskStatus(taskId) {
  return request({
    url: `/task/status`,
    method: 'get',
    params: { taskId }
  })
}

// 下载pdf报告
export function downloadPDF(taskId) {
  return request({
    url: `/task/pdf/download/${taskId}`,
    method: 'get'
  })
}

// 检查任务状态 - 用于轮询
export function generateTaskPDF(taskId) {
  return request({
    url: `/task/pdf/${taskId}`,
    method: 'get'
  })
}

// 生成网页报告 - 设置更长的超时时间
export function generateTaskWebpage(taskId, regenerate = false) {
  return request({
    url: `/task/webpage/generate`,
    method: 'get',
    params: {
      taskId,
      regenerate
    },
    timeout: 450000 // 5分钟超时时间，专门为网页生成接口设置
  })
}

// 模拟数据 - 任务状态
export function getMockTaskStatus(taskId) {
  // 模拟数据
  const mockStatusList = [
    {
      taskId: taskId || 'task-12345678',
      stepId: 1,
      overallStatus: 'in_progress',
      currentNode: '任务初始化',
      nodeStatus: 'completed',
      message: '任务已成功初始化',
      timestamp: new Date(Date.now() - 300000).toISOString(),
      payload: {
        domain: 'finance',
        fromDate: '20250101',
        toDate: '20250601'
      }
    },
    {
      taskId: taskId || 'task-12345678',
      stepId: 2,
      overallStatus: 'in_progress',
      currentNode: '数据收集',
      nodeStatus: 'in_progress',
      message: '正在收集行业数据...',
      timestamp: new Date(Date.now() - 180000).toISOString(),
      payload: {
        dataSource: '公开数据',
        progress: '45%'
      }
    }
  ]

  // 随机添加一个正在进行的步骤
  if (Math.random() > 0.5) {
    mockStatusList.push({
      taskId: taskId || 'task-12345678',
      stepId: 3,
      overallStatus: 'in_progress',
      currentNode: '数据分析',
      nodeStatus: 'pending',
      message: '等待数据分析...',
      timestamp: new Date().toISOString(),
      payload: {
        waitingFor: '数据收集完成'
      }
    })
  }

  return Promise.resolve({
    code: 200,
    message: '操作成功',
    data: {
      data: mockStatusList
    }
  })
}

// 模拟数据 - 任务结果
export function getMockTaskOutcome(taskId) {
  // 模拟数据
  const mockData = {
    taskId: taskId || 'task-12345678',
    status: 'completed',
    outcome: {
      response: `# 工商银行(01398) 2025年第一季度财报分析

## 财务表现概览

工商银行在2025年第一季度展现出稳健的财务表现：

- **营业收入**: 同比增长8.2%
- **净利润**: 同比增长6.5%
- **每股收益**: 0.26元，同比增长6.1%

## 主要业务指标

| 指标 | 数值 | 变动 |
|------|------|------|
| 总资产 | 38.7万亿元 | +5.3% |
| 存款总额 | 29.4万亿元 | +4.8% |
| 贷款总额 | 22.6万亿元 | +6.2% |
| 不良贷款率 | 1.38% | -0.02个百分点 |
| 资本充足率 | 16.42% | +0.15个百分点 |

## 业务亮点

1. 零售银行业务收入增长9.3%，占总收入的45.2%
2. 企业银行业务收入增长7.1%，占总收入的40.5%
3. 金融市场业务收入增长6.8%，占总收入的14.3%

## 风险管理

不良贷款率为1.38%，较上年末下降0.02个百分点，拨备覆盖率达到198.5%，风险抵御能力持续增强。

## 展望

管理层预计2025年全年业绩将保持稳健增长，将继续推进数字化转型战略，提升客户体验和运营效率。`,
      metadata: {
        stockCode: '01398',
        fromDate: '20250101',
        toDate: '20250601',
        announcements: [
          {
            title: '工商银行2025年第一季度业绩报告',
            date: '2025-04-28',
            url: 'https://example.com/twobu/2025q1'
          },
          {
            title: '工商银行2025年第一季度投资者电话会议记录',
            date: '2025-04-29',
            url: 'https://example.com/twobu/2025q1/call'
          }
        ],
        parsedContents: [
          {
            type: 'financial_indicator',
            name: '营业收入增长率',
            value: '8.2%'
          },
          {
            type: 'financial_indicator',
            name: '净利润增长率',
            value: '6.5%'
          },
          {
            type: 'financial_indicator',
            name: '每股收益',
            value: '0.26元'
          },
          {
            type: 'risk_indicator',
            name: '不良贷款率',
            value: '1.38%'
          },
          {
            type: 'risk_indicator',
            name: '拨备覆盖率',
            value: '198.5%'
          },
          {
            type: 'capital_indicator',
            name: '资本充足率',
            value: '16.42%'
          }
        ]
      }
    }
  }

  return Promise.resolve({
    code: 200,
    message: '操作成功',
    data: mockData
  })
}
